//给你两个整数 num1 和 num2，返回这两个整数的和。
//
// 
//
// 示例 1： 
//
// 
//输入：num1 = 12, num2 = 5
//输出：17
//解释：num1 是 12，num2 是 5 ，它们的和是 12 + 5 = 17 ，因此返回 17 。
// 
//
// 示例 2： 
//
// 
//输入：num1 = -10, num2 = 4
//输出：-6
//解释：num1 + num2 = -6 ，因此返回 -6 。
// 
//
// 
//
// 提示： 
//
// 
// -100 <= num1, num2 <= 100 
// 
//
// Related Topics 数学 👍 154 👎 0

//两整数相加
package leetcode.editor.cn;

class P2235AddTwoIntegers {
    public static void main(String[] args) {
        Solution solution = new P2235AddTwoIntegers().new Solution();
        int sum = solution.sum(5, 6);
        System.out.println(sum);
    }

    //leetcode submit region begin(Prohibit modification and deletion)
    class Solution {
        public int sum(int num1, int num2) {
            int total, carry;
            while (true) {
                total = num1 ^ num2;
                carry = (num1 & num2) << 1;
                if (carry == 0)    //进位为0时退出循环
                    break;
                num1 = total;
                num2 = carry;
            }
            return total;
        }
    }
//leetcode submit region end(Prohibit modification and deletion)

}